Εισαγωγή

→

Zeus ColorControls

Zeus ColorControls version 1.0

Κλάσεις: ColorSwatchHTML16, ColorPicker.

Inherits: System.Windows.Controls.UserControl

Namespace: Zeus.WPF.Controls.ColorControls

Assembly: ZeusColorControls (in ZeusColorControls.dll)

Dependencies: CustomColors.txt

Περιγραφή

Η βιβλιοθήκη Zeus ColorControls περιλαμβάνει δύο UserControls, για την επιλογή χρώματος. Η στάνταρ βιβλιοθήκη του WPF δεν παρέχει κάποια ανάλογα controls οπότε θα καταφύγουμε σε λύσεις τρίτων. Μία καλή επιλογή είναι αυτά που παρουσιάζουμε παρακάτω, όπου παρέχουν μία απλή ή σύνθετη παλέτα χρωμάτων μέσω της οποίας ο χρήστης μπορεί να επιλέξει ένα χρώμα.

Να σημειωθεί ότι, τα χρώματα είναι συμπαγή (solid colors) και προς το παρόν δεν υπάρχει δυνατότητα για διαβαθμισμένα χρώματα (gradient colors).

Παρακάτω, παρατίθενται τα ColorControls.

ColorSwatchHTML16 | Επιτρέπει την επιλογή χρώματος από μία παλέτα που βασίζεται στο πρότυπο του HTML 3.2. H συγκεκριμένη παλέτα παρέχει μία μικρή γκάμα 16 βασικών χρωμάτων. Μπορεί να χρησιμοποιηθεί για τον γρήγορο χρωματισμό κειμένου.
ColorPicker | Επιτρέπει την επιλογή χρώματος από μία παλέτα που βασίζεται στο πρότυπο του Office 2007. Ως εκ τούτου, υπάρχουν περισσότερα χρώματα ενώ υπάρχει η δυνατότητα ο χρήστης να συνθέσει και να αποθηκεύσει μέχρι και 20 custom colors. Να σημειωθεί ότι, μελλοντικά ενδέχεται να προστεθούν κι άλλες παλέτες προς επιλογή.

Παρατηρήσεις

Σε φάση ανάπτυξης, πρέπει να τοποθετήσετε το αρχείο CustomColors.txt στο φάκελο του έργου, δηλαδή στο φάκελο που βρίσκεται το solution αρχείο (.sln). Αλλιώς, δεν θα μπορείτε να χρησιμοποιήσετε το ColorPicker. Το αρχείο αυτό χρησιμοποιείται εσωτερικά από το ColorPicker για να αποθηκεύει τα custom colors (μέχρι 20 χρώματα) που συνθέτει ο χρήστης.

Παρομοίως, στη διανομή, πρέπει το αρχείο αυτό να συμπεριληφθεί στον φάκελο διανομής μαζί με το assembly αρχείο ZeusColorControls.dll.

Aνάπτυξη: Χρήστος Μουρατίδης - Zeus Software Solutions ©2018 - Email: mouratx@yahoo.com


Οι ορισμοί των κλάσεων

← →

Zeus ColorControls

Οι κλάσεις έχουν οριστεί ως εξής:

•Για την κλάση ColorSwatchHTML16:

Σύνταξη:

VB:

<DefaultProperty("SelectedColor")>

Public Class ColorSwatchHTML16

XAML Object Element Usage:

Εισαγωγή namespace:

xmlns:zeus="clr-namespace:Zeus.WPF.Controls.ColorControls;assembly=ZeusColorControls"

Χρήση:

<zeus:ColorSwatchHTML16 ... />

•Για την κλάση ColorPicker:

Σύνταξη:

VB:

<DefaultProperty("SelectedColor")>

Public Class ColorPicker

XAML Object Element Usage:

Εισαγωγή namespace:

xmlns:zeus="clr-namespace:Zeus.WPF.Controls.ColorControls;assembly=ZeusColorControls"

Χρήση:

<zeus:ColorPicker ... />


Διανομή

Zeus ColorControls

Κατά τη διανομή, στο φάκελο της εφαρμογής σας πρέπει να αντιγράψετε το assembly αρχείο ZeusColorControls.dll και το text αρχείο CustomColors.txt.


Επικοινωνία

Zeus ColorControls

Για οποιαδήποτε πληροφορία ή διευκρίνηση παρακαλώ επικοινωνήστε στο :

mouratx@yahoo.com ή mouratx@hotmail.com

Χρήστος Μουρατίδης,

Πειραιάς, Σεπτέμβριος 2018

Υ.Γ. Μπορείτε να επικοινωνήσετε μαζί μου για να προμηθευτείτε το βιβλίο μου "Μάθετε το WPF με τη Visual Basic" (1.333 σελίδες, Αυτοέκδοση 2018).


ColorSwatchHTML16

Zeus ColorControls

Ένα UserControl που περιέχει μία βασική παλέτα 16 χρωμάτων που βασίζεται στο πρότυπο HTML 3.2.

Σύνταξη:

VB:

<DefaultProperty("SelectedColor")>

Public Class ColorSwatchHTML16

XAML Object Element Usage:

Εισαγωγή namespace:

xmlns:zeus="clr-namespace:Zeus.WPF.Controls.ColorControls;assembly=ZeusColorControls"

Χρήση:

<zeus:ColorSwatchHTML16 ... />

Παρατηρήσεις:

Πρόκειται για ένα πολύ απλό control που επιτρέπει στο χρήστη να επιλέξει γρήγορα ένα χρώμα από μία μικρή παλέτα 16 χρωμάτων. Μπορεί να χρησιμοποιηθεί σε σενάρια χρωματισμού κειμένου. Το επιλεγμένο χρώμα αποθηκεύεται στην ιδιότητα SelectedColor ενώ αν συνδέσουμε (με μία binding έκφραση σε XAML) την ιδιότητα SelectedSolidColorBrush με την ιδιότητα Foreground ενός control (π.χ. TextBlock) τότε αυτόματα εφαρμόζεται το επιλεγμένο χρώμα στο κείμενο του control.

Παράδειγμα:

Στο παράδειγμα που ακολουθεί, τοποθετούμε μέσα σε ένα Grid ενός παραθύρου διάφορα controls μεταξύ των οποίων ένα Rectangle, ένα TextBox κι ένα ColorSwatchHTML16. Συνδέουμε την ιδιότητα Fill του Rectangle και την ιδιότητα Foreground του TextBox με την ιδιότητα SelectedSolidColorBrush του ColorsSwatchHTML16. Κάθε φορά που ο χρήστης επιλέγει ένα χρώμα από την παλέτα τότε βάφεται το Rectangle και χρωματίζεται το κείμενο στο TextBox.

<Window x:Class="MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns:zeus="clr-namespace:Zeus.WPF.Controls.ColorControls;assembly=ZeusColorControls"

mc:Ignorable="d"

Title="ColorControls Sample Project" Height="500" Width="555">

<Window.Resources >

<!-- A Style for the TextBlocks -->

<Style TargetType="{x:Type TextBlock }">

<Setter Property="FontSize" Value="18" />

<Setter Property="HorizontalAlignment" Value="Center"/>

<Setter Property="Padding" Value="5"/>

<Setter Property="TextWrapping" Value="Wrap" />

</Style>

</Window.Resources>

<Grid Margin="10">

...

<!--Content-->

<!-- A Sample Box filled with color from ColorSwatchHTML16. Also, a TextBox is colorized by the ColorSwatchHTML16.-->

<StackPanel Background="Beige" >

<TextBlock >Please, select a color from the <Bold>color swatch:</Bold></TextBlock>

<TextBlock>A Box</TextBlock>

<Rectangle Name="rect" Width="150" Height="50" Margin="7"

Fill="{Binding ElementName=clrSwatch, Path=SelectedSolidColorBrush}"

Stroke="YellowGreen" StrokeDashArray="1 2" />

<TextBox Text="Type something here..." FontSize="14" Margin="7" Height="23"

Foreground="{Binding ElementName=clrSwatch, Path=SelectedSolidColorBrush}" />

<zeus:ColorSwatchHTML16 Name="clrSwatch" SelectedColor="Lime" Margin="0,0,0,20" />

</StackPanel>

</Grid>

</Window>

Παρακάτω, ο χρήστης έχει επιλέξει το Lime:


Ιδιότητες - ColorSwatchHTML16

Ιδιότητες

ColorSwatchHTML16

Όνομα | Περιγραφή
SelectedColor | Καθορίζει το επιλεγμένο χρώμα, τύπου Color.
SelectedSolidColorBrush | Επιστρέφει ένα αντικείμενο, τύπου SolidColorBrush, που αντιστοιχεί στο επιλεγμένο χρώμα. Είναι read-only και πολύ χρήσιμη σε binding σενάρια, συνήθως με τις ιδιότητες Background και Foreground ενός control.


SelectedColor - ColorSwatchHTML16

SelectedColor

ColorSwatchHTML16 > Ιδιότητες

Καθορίζει το επιλεγμένο χρώμα, τύπου Color.

Σύνταξη:

VB:

Public Property SelectedColor As Color

Τύπος: System.Windows.Media

Προσδιορίζουμε τιμή Color που θα αποτελεί το επιλεγμένο χρώμα. H default τιμή είναι Nothing.

Dependency Property Information:

Identifier field: SelectedColorProperty

Παρατηρήσεις:

Προγραμματιστικά, θέτουμε μία προκαθορισμένη τιμή από την κλάση Colors. Αν και μπορεί να δεχτεί μία οποιαδήποτε τιμή Color, αν δεν ανήκει στις βασικές 16 δεν θα αντικατοπτριστεί ως πατημένο κουμπί στο control.

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε το μπλε ως επιλεγμένο χρώμα:

XAML:

<zeus:ColorSwatchHTML16 Name="clrSwatch" SelectedColor="Blue" ... />

VB:

clrSwatch.SelectedColor = Colors.Blue


SelectedSolidColorBrush - ColorSwatchHTML16

SelectedSolidColorBrush

ColorSwatchHTML16 > Ιδιότητες

Επιστρέφει ένα αντικείμενο, τύπου SolidColorBrush, που αντιστοιχεί στο επιλεγμένο χρώμα.

Σύνταξη:

VB:

Public ReadOnly Property SelectedSolidColorBush As SolidColorBrush

Τύπος: System.Windows.Media

Dependency Property Information:

Identifier field: SelectedSolidColorBrushProperty

Παράδειγμα:

Στο επόμενο παράδειγμα (XAML), συνδέουμε με μία binding έκφραση, την ιδιότητα Foreground του txtNotes με την ιδιότητα SelectedSolidColorBrush του clrSwatch:

XAML:

<TextBox Name="txtNotes" Text="Type something here..." FontSize="14" Margin="7" Height="23"

Foreground="{Binding ElementName=clrSwatch, Path=SelectedSolidColorBrush}" />

<zeus:ColorSwatchHTML16 Name="clrSwatch" SelectedColor="Lime" Margin="0,0,0,20" />

Και άμεσα:

VB (χωρίς binding):

txtNotes.Foreground= clrSwatch.SelectedSolidColorBrush


Συμβάντα - ColorSwatchHTML16

Συμβάντα

ColorSwatchHTML16

Όνομα | Περιγραφή
SelectedColorChanged | Ενεργοποιείται όταν αλλάζει το επιλεγμένο χρώμα, δηλαδή η τιμή της ιδιότητας SelectedColor.


SelectedColorChanged - ColorSwatchHTML16

SelectedColorChanged

ColorSwatchHTML16 > Συμβάντα

Ενεργοποιείται όταν αλλάζει τιμή η ιδιότητα SelectedColor.

Σύνταξη:

VB (ορισμός):

Public Custom Event SelectedColorChanged As RoutedEventHandler

XAML attribute usage:

<zeus:ColorSwatchHTML16 SelectedColorChanged="eventHanlder" ... />

Παράδειγμα:

Στο επόμενο παράδειγμα, όταν αλλάζει ο χρήστης το επιλεγμένο χρώμα τότε η ιδιότητα Foreground ενός TextBox, με όνομα txtNotes, λαμβάνει το χρώμα αυτό και εμφανίζεται σε μήνυμα η δεκαεξαδική τιμή του:

XAML:

<zeus:ColorSwatchHTML16 Name="clrSwatch" SelectedColor="Lime" Margin="0,0,0,20"

SelectedColorChanged="clrSwatch_SelectedColorChanged"/>

VB:

Imports Zeus.WPF.Controls.ColorControls

...

Private Sub clrSwatch_SelectedColorChanged(sender As Object, _

e As SelectedColorChangedInColorSwatchHTML16EventArgs)

txtNotes.Foreground = clrSwatch.SelectedSolidColorBrush

MessageBox.Show(String.Format("The selected color is {0}", e.SelectedColor.ToString))

End Sub


ColorPicker

Zeus ColorControls

Ένα UserControl που επιτρέπει την επιλογή χρώματος από μία παλέτα που βασίζεται στο πρότυπο του Office 2007. Ως εκ τούτου, υπάρχουν περισσότερα χρώματα ενώ υπάρχει η δυνατότητα ο χρήστης να συνθέσει και να αποθηκεύσει μέχρι και 20 custom colors.

Να σημειωθεί ότι, μελλοντικά ενδέχεται να προστεθούν κι άλλες παλέτες προς επιλογή.

Σύνταξη:

VB:

<DefaultProperty("SelectedColor")>

Public Class ColorPicker

XAML Object Element Usage:

Εισαγωγή namespace:

xmlns:zeus="clr-namespace:Zeus.WPF.Controls.ColorControls;assembly=ZeusColorControls"

Χρήση:

<zeus:ColorPicker ... />

Παρατηρήσεις:

Πρόκειται για ένα περισσότερο σύνθετο control που επιτρέπει στο χρήστη να επιλέξει ένα χρώμα από μία παλέτα χρωμάτων που βασίζεται στο πρότυπο του Office 2007 (μελλοντικά, ενδέχεται να προστεθούν κι άλλες). Οι τίτλοι των επιμέρους τμημάτων (Palette colors, Standard colors, το κουμπί More colors... κλπ) μπορούν να τροποποιηθούν διευκολύνοντας το localization του control. Πέρα, από τα έτοιμα χρώματα, ο χρήστης πατώντας το κουμπί More colors...., ανοίγει ένα μικρό παράθυρο όπου μπορεί να προσθέσει/τροποποιήσει μέχρι 20 custom colors. Τα τελευταία θα εισαχθούν στο τμήμα Custom colors.

Στο παράθυρο αυτό, το πάνω ορθογώνιο δείχνει το τρέχον χρώμα και το κάτω ορθογώνιο δείχνει το νέο χρώμα που συντίθεται μέσω των sliders ή θέτοντας τιμές (0-255) στα τμήματα RGBA.

Προγραμματιστικά, μέσω μεθόδου, υπάρχει η δυνατότητα να κάνουμε reset τα custom colors.

Πρέπει, να σημειώσουμε ότι για να λειτουργήσει το ColorPicker πρέπει να τοποθετήσουμε το αρχείο CustomColors.txt στο φάκελο του έργου, εκεί όπου βρίσκεται το αρχείο solution (.sln). Όσον αφορά τη διανομή, πρέπει αυτό το αρχείο να βρίσκεται μαζί με το assembly ZeusColorControls.dll.

Παράδειγμα:

Στο παράδειγμα που ακολουθεί, τοποθετούμε μέσα σε ένα Grid ενός παραθύρου διάφορα controls μεταξύ των οποίων ένα Rectangle κι ένα ColorPicker. Συνδέουμε την ιδιότητα Fill του Rectangle με την ιδιότητα SelectedSolidColorBrush του ColorPicker. Κάθε φορά που ο χρήστης επιλέγει ένα χρώμα από την παλέτα τότε βάφεται το Rectangle. Επίσης, παρατηρούμε ότι, όλοι οι τίτλοι στα διάφορα λεκτικά σημεία (ακόμα και στο παράθυρο της σύνθεσης χρώματος με τα buttons ΟΚ, Cancel) είναι προσαρμόσιμοι μέσων των αντίστοιων ιδιοτήτων του control.

<Window x:Class="MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

xmlns:zeus="clr-namespace:Zeus.WPF.Controls.ColorControls;assembly=ZeusColorControls"

mc:Ignorable="d"

Title="ColorControls Sample Project" Height="500" Width="555">

<Window.Resources >

<!-- A Style for the TextBlocks -->

<Style TargetType="{x:Type TextBlock }">

<Setter Property="FontSize" Value="18" />

<Setter Property="HorizontalAlignment" Value="Center"/>

<Setter Property="Padding" Value="5"/>

<Setter Property="TextWrapping" Value="Wrap" />

</Style>

</Window.Resources>

<Grid Margin="10">

...

<!--Content-->

<!-- Selecting the color from the ColorPicker-->

<StackPanel Grid.Column="1" Background="Beige" >

<TextBlock >Please, select a color from the <Bold>color picker:</Bold></TextBlock>

<TextBlock>A Box</TextBlock>

<Rectangle Name="rect2" Width="150" Height="50" Margin="7"

Fill="{Binding ElementName=clrPicker , Path=SelectedSolidColorBrush }"

Stroke="YellowGreen" StrokeDashArray="1 2" />

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="ΟΚ" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70" />

</StackPanel>

</Grid>

</Window>

Παρακάτω, ο χρήστης έχει επιλέξει μία απόχρωση του κόκκινου:


Απαριθμήσεις - ColorPicker

Απαριθμήσεις

ColorPicker

Όνομα | Περιγραφή
PaletteEnum | Περιλαμβάνει τις τιμές για τις διαθέσιμες παλέτες χρωμάτων.


PaletteEnum - ColorPicker

PaletteEnum

ColorPicker > Απαριθμήσεις

Καθορίζει την τρέχουσα παλέτα χρωμάτων.

Σύνταξη:

VB:

Public Enum PaletteEnum

Μέλη:

Τιμή | Περιγραφή
Office2007 | Παλέτα χρωμάτων βασισμένη στο πρότυπο του Office 2007.

Στην τρέχουσα έκδοση είναι διαθέσιμη μία μόνο παλέτα.


Ιδιότητες - ColorPicker

Ιδιότητες

ColorPicker

Όνομα | Περιγραφή
CustomColorsTitle | Καθορίζει τον τίτλο στο τμήμα Custom colors, τύπου String.
MoreColorsTitle | Καθορίζει τον τίτλο στο button More colors..., τύπου String.
MoreColorsOKButtonTitle | Καθορίζει τον τίτλο στο button OK του παραθύρου σύνθεσης χρώματος, τύπου String.
MoreColorsCancelButtonTitle | Καθορίζει τον τίτλο στο button Cancel του παραθύρου σύνθεσης χρώματος, τύπου String.
MoreColorsDialogButtonsWidth | Καθορίζει το πλάτος των buttons OK και Cancel του παραθύρου σύνθεσης χρώματος, τύπου Double.
NoColorTitle | Καθορίζει τον τίτλο στο τμήμα No color, τύπου String.
Palette | Καθορίζει την τρέχουσα παλέτα χρωμάτων. Η τιμή προέρχεται από την απαρίθμηση PaletteEnum.
PaletteName | Επιστρέφει το όνομα της τρέχουσας παλέτας χρωμάτων, τύπου String.
PaletteColorsTitle | Καθορίζει τον τίτλο στο τμήμα Palette colors, τύπου String.
SelectedColor | Καθορίζει το επιλεγμένο χρώμα, τύπου Color.
SelectedSolidColorBrush | Επιστρέφει ένα αντικείμενο, τύπου SolidColorBrush, που αντιστοιχεί στο επιλεγμένο χρώμα. Είναι read-only και πολύ χρήσιμη σε binding σενάρια, συνήθως με τις ιδιότητες Background και Foreground ενός control.
StandardColorsTitle | Καθορίζει τον τίτλο στο τμήμα Standard colors, τύπου String.


CustomColorsTitle - ColorPicker

CustomColorsTitle

ColorPicker > Ιδιότητες

Καθορίζει τον τίτλο στο τμήμα Custom colors, τύπου String.

Σύνταξη:

VB:

Public Property CustomColorsTitle As String

Τύπος: System.String

Προσδιορίζουμε μία τιμή String που θα αποτελεί τον τίτλο του τμήματος Custom colors στην τρέχουσα παλέτα. Η default τιμή είναι "Custom colors".

Dependency Property Information:

Identifier field: CustomColorsTitleProperty

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε τον τίτλο "User defined colors" στο τμήμα Custom colors:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="User defined colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="ΟΚ" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70" />

VB:

clrPicker.CustomColorsTitle = "User defined colors"


MoreColorsTitle - ColorPicker

MoreColorsTitle

ColorPicker > Ιδιότητες

Καθορίζει τον τίτλο στο button More colors..., τύπου String.

Σύνταξη:

VB:

Public Property MoreColorsTitle As String

Τύπος: System.String

Προσδιορίζουμε μία τιμή String που θα αποτελεί τον τίτλο του button More colors... Η default τιμή είναι "More colors...".

Dependency Property Information:

Identifier field: MoreColorsTitleProperty

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε τον τίτλο "Color synthesis..." στο button More colors...:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="Custom colors"

NoColorTitle="No color"

MoreColorsTitle="Color synthesis..."

MoreColorsOKButtonTitle="ΟΚ" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70" />

VB:

clrPicker.MoreColorsTitle = "Color synthesis..."


MoreColorsOKButtonTitle - ColorPicker

MoreColorsOKButtonTitle

ColorPicker > Ιδιότητες

Καθορίζει τον τίτλο στο button OK στο παράθυρο σύνθεσης χρώματος, τύπου String.

Σύνταξη:

VB:

Public Property MoreColorsOKButtonTitle As String

Τύπος: System.String

Προσδιορίζουμε μία τιμή String που θα αποτελεί τον τίτλο του button OK στο παράθυρο σύνθεσης χρώματος. Η default τιμή είναι "OK".

Dependency Property Information:

Identifier field: MoreColorsOKButtonTitleProperty

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε τον τίτλο "Accept" στο button OK και τον τίτλο "Reject" στο button Cancel, στο παράθυρο σύνθεσης χρώματος:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="Custom colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="Accept" MoreColorsCancelButtonTitle="Reject"

MoreColorsDialogButtonsWidth="70" />

VB:

clrPicker.MoreColorsOKButtonTitle = "Accept"

clrPicker.MoreColorsCancelButtonTitle = "Reject"


MoreColorsCancelButtonTitle - ColorPicker

MoreColorsCancelButtonTitle

ColorPicker > Ιδιότητες

Καθορίζει τον τίτλο στο button Cancel στο παράθυρο σύνθεσης χρώματος, τύπου String.

Σύνταξη:

VB:

Public Property MoreColorsCancelButtonTitle As String

Τύπος: System.String

Προσδιορίζουμε μία τιμή String που θα αποτελεί τον τίτλο του button Cancel στο παράθυρο σύνθεσης χρώματος. Η default τιμή είναι "Cancel".

Dependency Property Information:

Identifier field: MoreColorsCancelButtonTitleProperty

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε τον τίτλο "Accept" στο button OK και τον τίτλο "Reject" στο button Cancel, στο παράθυρο σύνθεσης χρώματος:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="Custom colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="Accept" MoreColorsCancelButtonTitle="Reject"

MoreColorsDialogButtonsWidth="70" />

VB:

clrPicker.MoreColorsOKButtonTitle = "Accept"

clrPicker.MoreColorsCancelButtonTitle = "Reject"


MoreColorsDialogButtonsWidth - ColorPicker

MoreColorsDialogButtonsWidth

ColorPicker > Ιδιότητες

Καθορίζει το πλάτος των buttons OK και Cancel του παραθύρου σύνθεσης χρώματος, τύπου Double.

Σύνταξη:

VB:

Public Property MoreColorsDialogButtonsWidth As Double

Τύπος: System.Double

Προσδιορίζουμε μία τιμή Double που θα είνα το πλάτος των buttons OK και Cancel, στο παράθυρο σύνθεσης χρώματος. Η default τιμή είναι 70.

Dependency Property Information:

Identifier field: MoreColorsDialogButtonsWidthProperty

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε το πλάτος σε 90 pixels στα buttons OK και Cancel, στο παράθυρο σύνθεσης χρώματος:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="Custom colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="OK" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="90" />

VB:

clrPicker.MoreColorsDialogButtonsWidth = 90


NoColorTitle - ColorPicker

NoColorTitle

ColorPicker > Ιδιότητες

Καθορίζει τον τίτλο στο τμήμα No color, τύπου String.

Σύνταξη:

VB:

Public Property NoColorTitle As String

Τύπος: System.String

Προσδιορίζουμε μία τιμή String που θα αποτελεί τον τίτλο του τμήματος No color στην τρέχουσα παλέτα. Η default τιμή είναι "No color".

Dependency Property Information:

Identifier field: NoColoTitleProperty

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε τον τίτλο "Transparent" στο τμήμα No color:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="Custom colors"

NoColorTitle="Transparent"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="ΟΚ" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70" />

VB:

clrPicker.NoColorTitle = "Transparent"


Palette - ColorPicker

Palette

ColorPicker > Ιδιότητες

Καθορίζει την τρέχουσα παλέτα χρωμάτων. Η τιμή προέρχεται από την απαρίθμηση PaletteEnum.

Σύνταξη:

VB:

Public Property Palette As PaletteEnum

Τύπος: Zeus.WPF.Controls.ColorControls.PaletteEnum

Προσδιορίζουμε μία τιμή από την απαρίθμηση PaletteEnum για την τρέχουσα παλέτα χρωμάτων. Η default τιμή είναι PaletteEnum.Office2007.

Dependency Property Information:

Identifier field: PaletteProperty

Παρατηρήσεις:

Στην τρέχουσα έκδοση η μόνη διαθέσιμη παλέτα είναι η PaletteEnum.Office2007. Συνεπώς, η χρήση της ιδιότητας προς το παρόν είναι άσκοπη.

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε ως τρέχουσα παλέτα την ColorPicker.PaletteEnum.Office2007:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="User defined colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="ΟΚ" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70"

Palette="Office2007" />

VB:

Imports Zeus.WPF.Controls.ColorControls

clrPicker.Palette = ColorPicker.PaletteEnum.Office2007


PaletteName - ColorPicker

PaletteName

ColorPicker > Ιδιότητες

Επιστρέφει το όνομα της τρέχουσας παλέτας χρωμάτων, τύπου String..

Σύνταξη:

VB:

Public ReadOnly Property PaletteName As String

Τύπος: System.String

Dependency Property Information:

Identifier field: PaletteNameProperty

Παράδειγμα:

Στο επόμενο παράδειγμα, εμφανίζεται, ως μήνυμα, το όνομα της τρέχουσας παλέτας:

VB:

MessageBox.Show(String.Format("The current palette is {0}", clrPicker.PaletteName))


PaletteColorsTitle - ColorPicker

PaletteColorsTitle

ColorPicker > Ιδιότητες

Καθορίζει τον τίτλο στο τμήμα Palette colors, τύπου String.

Σύνταξη:

VB:

Public Property PaletteColorsTitle As String

Τύπος: System.String

Προσδιορίζουμε μία τιμή String που θα αποτελεί τον τίτλο του τμήματος Palette colors στην τρέχουσα παλέτα. Η default τιμή είναι "Palette colors".

Dependency Property Information:

Identifier field: PaletteColorsTitleProperty

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε τον τίτλο "Fixed palette colors" στο τμήμα Palette colors:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Fixed palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="Custom colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="ΟΚ" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70" />

VB:

clrPicker.PaletteColorsTitle = "Fixed palette colors"


SelectedColor - ColorPicker

SelectedColor

ColorPicker > Ιδιότητες

Καθορίζει το επιλεγμένο χρώμα, τύπου Color.

Σύνταξη:

VB:

Public Property SelectedColor As Color

Τύπος: System.Windows.Media

Προσδιορίζουμε τιμή Color που θα αποτελεί το επιλεγμένο χρώμα. H default τιμή είναι Nothing.

Dependency Property Information:

Identifier field: SelectedColorProperty

Παράδειγμα 1:

Στο επόμενο παράδειγμα, καθορίζουμε το πορτοκαλί ως επιλεγμένο χρώμα:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Fixed palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="Custom colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="ΟΚ" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70" />

VB:

clrPicker.SelectedColor = Colors.Orange

Παράδειγμα 2: Στο επόμενο παράδειγμα, καθορίζουμε το ημιδιαφανές κόκκινο ως επιλεγμένο χρώμα:

VB:

clrPicker.SelectedColor = Color.FromArgb(128, 255, 0, 0)

Αν το χρώμα ορίζεται προγραμματιστικά και δεν υπάρχει στην παλέτα, κανένα κουμπί δεν θα φαίνεται πατημένο.


SelectedSolidColorBrush - ColorPicker

SelectedSolidColorBrush

ColorPicker > Ιδιότητες

Επιστρέφει ένα αντικείμενο, τύπου SolidColorBrush, που αντιστοιχεί στο επιλεγμένο χρώμα.

Σύνταξη:

VB:

Public ReadOnly Property SelectedSolidColorBush As SolidColorBrush

Τύπος: System.Windows.Media

Dependency Property Information:

Identifier field: SelectedSolidColorBrushProperty

Παράδειγμα:

Στο επόμενο παράδειγμα (XAML), συνδέουμε με μία binding έκφραση, την ιδιότητα Fill του rect2 με την ιδιότητα SelectedSolidColorBrush του clrPicker:

XAML:

<Rectangle Name="rect2" Width="150" Height="50" Margin="7"

Fill="{Binding ElementName=clrPicker, Path=SelectedSolidColorBrush}"

Stroke="YellowGreen" StrokeDashArray="1 2" />

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="Custom colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="OK" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70" />

Και άμεσα:

VB (χωρίς binding):

rect2.Fill = clrPicker.SelectedSolidColorBrush


StandardColorsTitle - ColorPicker

StandardColorsTitle

ColorPicker > Ιδιότητες

Καθορίζει τον τίτλο στο τμήμα Standard colors, τύπου String.

Σύνταξη:

VB:

Public Property StandardColorsTitle As String

Τύπος: System.String

Προσδιορίζουμε μία τιμή String που θα αποτελεί τον τίτλο του τμήματος Standard colors στην τρέχουσα παλέτα. Η default τιμή είναι "Standard colors".

Dependency Property Information:

Identifier field: StandardColorsTitleProperty

Παράδειγμα:

Στο επόμενο παράδειγμα, καθορίζουμε τον τίτλο "Typical colors" στο τμήμα Standard colors:

XAML:

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Typical colors"

CustomColorsTitle="Custom colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="ΟΚ" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70" />

VB:

clrPicker.StandardColorsTitle = "Typical colors"


Συμβάντα - ColorPicker

Συμβάντα

ColorPicker

Όνομα | Περιγραφή
SelectedColorChanged | Ενεργοποιείται όταν αλλάζει το επιλεγμένο χρώμα, δηλαδή η τιμή της ιδιότητας SelectedColor.


SelectedColorChanged - ColorPicker

SelectedColorChanged

ColorPicker > Συμβάντα

Ενεργοποιείται όταν αλλάζει τιμή η ιδιότητα SelectedColor.

Σύνταξη:

VB (ορισμός):

Public Custom Event SelectedColorChanged As RoutedEventHandler

XAML attribute usage:

<zeus:ColorPicker SelectedColorChanged="eventHanlder" ... />

Παράδειγμα:

Στο επόμενο παράδειγμα, όταν αλλάζει ο χρήστης το επιλεγμένο χρώμα τότε η ιδιότητα Fill ενός Rectangle, με όνομα rect2, λαμβάνει το χρώμα αυτό και εμφανίζεται σε μήνυμα η δεκαεξαδική τιμή του. Αν και ο συνιστώμενος τρόπος, για την ιδιότητα Fill, είναι μέσω του μηχανισμού binding, εδώ θα ακολουθήσουμε τον παραδοσιακό τρόπο:

XAML:

<Rectangle Name="rect2" Width="150" Height="50" Margin="7"

Stroke="YellowGreen" StrokeDashArray="1 2" />

<zeus:ColorPicker Name="clrPicker" Margin="0,0,0,20" HorizontalAlignment="Center"

SelectedColor="Orange"

PaletteColorsTitle="Palette colors"

StandardColorsTitle="Standard colors"

CustomColorsTitle="Custom colors"

NoColorTitle="No color"

MoreColorsTitle="More colors..."

MoreColorsOKButtonTitle="OK" MoreColorsCancelButtonTitle="Cancel"

MoreColorsDialogButtonsWidth="70"

SelectedColorChanged="clrPicker_SelectedColorChanged" />

VB:

Imports Zeus.WPF.Controls.ColorControls

...

Private Sub clrPicker_SelectedColorChanged(sender As Object, _

e As SelectedColorChangedInColorPickerEventArgs)

rect2.Fill = clrPicker.SelectedSolidColorBrush

MessageBox.Show(String.Format("The selected color is {0}", e.SelectedColor.ToString))

End Sub


Μέθοδοι - ColorPicker

Μέθοδοι

ColorPicker

Όνομα | Περιγραφή
ResetCustomColors() | Διαγράφει όλα τα custom colors. Επιστρέφει True αν η διαδικασία είναι επιτυχής.


ResetCustomColors - ColorPicker

ResetCustomColors

ColorPicker > Μέθοδοι

Διαγράφει όλα τα custom colors. Επιστρέφει True αν η διαδικασία είναι επιτυχής.

Σύνταξη:

VB :

Public Function ResetCustomColors() As Boolean

Παρατηρήσεις:

Η μέθοδος αυτή, αρχικοποιεί τις τιμές χρωμάτων στο αρχείο CustomColors.txt. Συγκεκριμένα, επαναφέρει την default τιμή #00FFFFFF (Transparent) και κάνει τα buttons του τμήματος Custom colors μη επιλέξιμα. Έτσι, ο χρήστης μπορεί να συνθέσει εκ νέου χρώματα.

Παράδειγμα:

VB:

If Not clrPicker.ResetCustomColors() Then

MessageBox.Show("Problem on resetting the custom colors.")

End If

Πριν | Μετά


CustomColors.txt - ColorPicker

CustomColors.txt

←

ColorPicker

Το αρχείο αυτό περιέχει τις τιμές 20 custom colors που συνθέτει ο χρήστης. Είναι απαραίτητο για τη λειτουργικότητα του ColorPicker. Κατά τη φάση της ανάπτυξης, πρέπει να βρίσκεται στον ίδιο φάκελο που βρίσκεται το αρχείο έργου (.sln). Επίσης, πρέπει να συμπεριληφθεί στο φάκελο της διανομής (π.χ. bin\Debug ή bin\Release).

Ένα δείγμα από το περιεχόμενο του αρχείου:

CustomColor1=#FFAD8428

CustomColor2=#9D957DD7

CustomColor3=#3F76CD2E

CustomColor4=#7AFF0000

CustomColor5=#00FFFFFF

CustomColor6=#00FFFFFF

CustomColor7=#00FFFFFF

CustomColor8=#00FFFFFF

CustomColor9=#00FFFFFF

CustomColor10=#00FFFFFF

CustomColor11=#00FFFFFF

CustomColor12=#00FFFFFF

CustomColor13=#00FFFFFF

CustomColor14=#00FFFFFF

CustomColor15=#00FFFFFF

CustomColor16=#00FFFFFF

CustomColor17=#00FFFFFF

CustomColor18=#00FFFFFF

CustomColor19=#00FFFFFF

CustomColor20=#00FFFFFF

Οι τιμές των χρωμάτων είναι δεκαεξαδικές. Η τιμή #00FFFFFF υποδηλώνει ότι δεν έχει οριστεί στο αντίστοιχο κουμπί του τμήματος Custom colors κάποιο χρώμα από το χρήστη και συνεπώς αυτό είναι μη επιλέξιμο. Αν ο χρήστης συνθέσει νέο χρώμα και οι 20 θέσεις έχουν συμπληρωθεί τότε αντικαθίσταται το πρώτο κ.ο.κ.

Μπορείτε να επέμβετε εδώ απ' ευθείας και να προκαθορίσετε κάποια έτοιμα custom colors. Προσοχή, όμως, πρέπει να δοθεί ώστε η συμπλήρωση να γίνει σειριακά χωρίς να υπάρχει ενδιάμεσα κενό (τιμή #00FFFFFF).